package com.ipartek.formacion.DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 
 * @author Jonatan
 */
public class MySqlDAOFactory extends DAOFactory {

	// Variable para la conexion
	private static Connection con = null;

	// Parametros configuracion base de datos
	private static final String DRIVER_MYSQL = "com.mysql.jdbc.Driver";
	private static final String DB_NAME = "dado";
	private static final String DB_PORT = "3306";
	private static final String DB_USER = "root";
	private static final String DB_PASS = "curso";
	private static final String DB_SERVER = "localhost";
	private static final String DB_URL = "jdbc:mysql://" + DB_SERVER + ":"
			+ DB_PORT + "/" + DB_NAME;

	/**
	 * Constructor vacio
	 */
	public MySqlDAOFactory() {
	}

	// ***********************//
	// ******* METODOS *******//
	// ***********************//

	/**
	 * Metodo que crea la conexion a la BBDD de DADO
	 */
	public static Connection conectar() throws Exception {

		Connection conexion = null;
		try {

			Class.forName(DRIVER_MYSQL);

			String url = DB_URL;

			conexion = DriverManager.getConnection(url, DB_USER, DB_PASS);

			conexion.setAutoCommit(true);

		} catch (Exception ex) {
			ex.printStackTrace();
		}
		if (conexion == null) {
			throw new Exception("Problema al conectar BBDD conexion="
					+ conexion);
		}
		return conexion;
	}

	/**
	 * Metodo que desconecta la BBDD de DADO
	 */
	public static void desconectar(Connection conexion) {
		if (conexion != null) {
			try {
				conexion.close();
			} catch (SQLException ex) {
			}
		}
	}

	/**
	 * Metodo que devuelve la interfaz del DAO de Alumno
	 */
	@Override
	public MySqlAlumnoDAO getInterfaceAlumnoDAO() {
		return new MySqlAlumnoDAO();
	}

	/**
	 * Metodo que devuelve la interfaz del DAO de Tiradas
	 */
	@Override
	public MySqlTiradaDAO getInterfaceTiradaDAO() {
		return new MySqlTiradaDAO();
	}

	@Override
	public MySqlAlumnoAuxDAO getInterfaceAlumnoAuxDAO() {
		return new MySqlAlumnoAuxDAO();
	}

	@Override
	public MySqlTiradaAuxDAO getInterfaceTiradaAuxDAO() {
		return new MySqlTiradaAuxDAO();
	}
}
